package cl.tinet.trainee.tarea6.mantenedor;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import cl.tinet.trainee.tarea6.ejb.UsuarioBean;
import cl.tinet.trainee.tarea6.exception.UsuarioDaoException;
import cl.tinet.trainee.tarea6.model.Usuario;

@ManagedBean
@SessionScoped
public class UsuarioMB implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@EJB(mappedName = "UsuarioBean", name = "UsuarioBean")
	private transient UsuarioBean bean;
	private Usuario usuario;

	private String mensaje;

	/**
	 * Despues de la generacion de una instancia de UsuarioMB, se realiza el
	 * metodo init.
	 */
	@PostConstruct
	private void init() {
		if (this.usuario == null) {
			this.usuario = new Usuario();
		}
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String agregar() {
		try {
			if (bean.agregar(this.usuario)) {
				mensaje = "ingreso exitoso";
			}
		} catch (UsuarioDaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "index";
	}

	public String eliminar(Usuario usuario) {
		String msj = "index";
		bean.eliminar(usuario);
		return msj;
	}

	public List<Usuario> listar(String filtro) {
		return bean.listarUsuario(filtro);
	}

	public String modificar(Usuario user) {
		String msj = "modificar";
		this.usuario = user;
		return msj;
	}

	public String actualizar() {
		String msj = "index";
		bean.actualizar(this.usuario);
		return msj;
	}

	public void limpiarUsuario() {
		this.usuario = new Usuario();
	}

	public void buscar() {
		this.usuario = bean.buscar(usuario);
	}

}
